package com.thinkgem.jeesite.modules.export.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.thinkgem.jeesite.common.persistence.CrudDao;
import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
import com.thinkgem.jeesite.modules.export.entity.ExpRoutinevacc6_1;

/**
 * 常规免疫6-1 DAO
 * @author Jack
 * @date 2017年10月13日 下午2:34:25
 * @description 
 */
@MyBatisDao
public interface ExpRoutinevacc6_1Dao extends  CrudDao<ExpRoutinevacc6_1>{
	
	//------------------------------------------------------------------------------------------
	//-------------------------------常规免疫6-1开始-------------------------------------------//
	//------------------------------------------------------------------------------------------
	
	//-------------------------------------获取 map数据开始-----------------------------------//
	/**
	 * 常规免疫接种 情况汇总表6-1 查询数据 =>按居住类型
	 * @author Jack
	 * @date 2017年9月20日 下午4:00:47
	 * @description 
	 * @param map
	 * @return
	 *
	 */
	public List<HashMap<String, String>> selectVaccData61_unit(HashMap<String, String> map);
	
	/**
	 * 常规免疫接种 情况汇总表6-1 查询数据 =>按社区  分居住类型
	 * @author Jack
	 * @date 2017年9月20日 下午4:01:29
	 * @description 
	 * @param map
	 * @return
	 *
	 */
	public List<HashMap<String, String>> selectVaccData61_unitAndReside(HashMap<String, String> map);
	
	/**
	 * 常规免疫接种 情况汇总表6-1 查询数据 =>按社区  不分居住类型
	 * @author Jack
	 * @date 2017年9月20日 下午4:03:26
	 * @description 
	 * @param map
	 * @return
	 *
	 */
	public List<HashMap<String, String>> selectVaccData61_unitNoReside(HashMap<String, String> map);
	
	/**
	 * 常规免疫接种情况汇总表6-1 特殊类型疫苗统计
	 * @author Jack
	 * @date 2017年10月25日 下午7:09:48
	 * @description 
	 * @param map
	 * @return
	 *
	 */
	public List<HashMap<String, String>> selectVaccSpecData61_unitNoReside(HashMap<String,String> map);
	
	/**
	 * 常规免疫接种 情况汇总表6-1 查询数据    总合计
	 * @author Jack
	 * @date 2017年9月20日 下午4:04:05
	 * @description 
	 * @param map
	 * @return
	 *
	 */
	public List<HashMap<String, String>> selectVaccData61_all(HashMap<String, String> map);
	
	/**
	 * 查询下一层级非根子节点数据
	 * @author Jack
	 * @date 2017年11月7日 上午9:10:35
	 * @description 
	 * @param map
	 * @return
	 *
	 */
	public List<HashMap<String, Object>> selectNextLevelData(@Param(value="officeCode")String officeCode, @Param(value="startTime")String startTime, @Param(value="endTime")String endTime);
	
	//-------------------------------------获取 map数据结束-----------------------------------//
	
	/**
	 * 查询Reside
	 * @author Jack
	 * @date 2017年10月13日 上午9:56:37
	 * @description 
	 * @param list_reside
	 * @return
	 *
	 */
	public List<ExpRoutinevacc6_1> selectResideList();
	
	
	/**
	 * 查询Community
	 * @author Jack
	 * @date 2017年10月13日 上午9:57:48
	 * @description 
	 * @param list_community
	 * @return
	 *
	 */
	public List<ExpRoutinevacc6_1> selectCommunityList();
	
	
	/**
	 * 查询7岁内全部记录
	 * @author Jack
	 * @date 2017年10月13日 上午10:31:51
	 * @description 
	 * @param sql_total
	 * @return
	 *
	 */
	public List<ExpRoutinevacc6_1> selectTotalList();
	
	/**
	 * 查询7岁内全部记录，并拼接community、reside
	 * @author Jack
	 * @date 2018年3月1日 上午2:18:46
	 * @description 
	 * @param monthNum
	 * @param officeStr
	 * @return
	 *
	 */
	public List<Map<String, String>> selectSqlQuery(@Param(value = "monthNum")Integer monthNum, @Param(value="officeStr") String officeStr);
	
	public List<Map<String, String>> selectSqlList(@Param(value = "id") String id, @Param(value = "monthNum") Integer monthNum);
		
	
	public List<Map<String, String>> selectSqlYzrq(@Param(value = "id") String id, @Param(value = "monthNum") Integer monthNum);
	
	//----------------------------------------------------------------------------------------//
	//-------------------------------常规免疫6-1结束-------------------------------------------//
	//----------------------------------------------------------------------------------------//
	
	
	
	//----------------------------------------------------------------------------------------//
	//-------------------------------国家常规免疫6-1开始---------------------------------------//
	//----------------------------------------------------------------------------------------//
	/**
	 * 国家免疫规划疫苗常规接种情况报表(表6-1)<br>带居住属性的查询方法:本地,流动,临时
	 * @author Jack
	 * @date 2017年10月19日 上午9:48:24
	 * @description 
	 * @param map
	 * @return
	 *
	 */
	public List<HashMap<String, String>> nationalRoutineVaccWithReside6_1(@Param(value="reside")String reside, @Param(value="startTime")String startTime, @Param(value="endTime")String endTime);

	/**
	 * 国家免疫规划疫苗常规接种情况报表(表6-1)<br>不带居住属性的查询方法:合计
	 * @author Jack
	 * @date 2017年10月25日 下午5:11:13
	 * @description 
	 * @param reside
	 * @param startTime
	 * @param endTime
	 * @return
	 *
	 */
	public List<HashMap<String, String>> nationalRoutineVaccNoReside6_1(@Param(value="startTime") String startTime, @Param(value="endTime") String endTime);

	//----------------------------------------------------------------------------------------//
	//-------------------------------国家常规免疫6-1结束---------------------------------------//
	//----------------------------------------------------------------------------------------//
	
	/**
	 * 查询互联网版本社区信息
	 * @author Jack
	 * @date 2018年3月1日 上午2:13:27
	 * @description 
	 * @return
	 *
	 */
	public List<HashMap<String, String>> selectCommunityListNetVersion();
	
	/**
	 *  根据传入的年月、localCode判断该条件下生成的数据总条数根据传入的年月、localCode判断该条件下生成的数据总条数
	 * @author Jack
	 * @date 2018年3月1日 上午2:14:54
	 * @description 
	 * @param yearMonth 年月字符串
	 * @param localCode 本地编码
	 * @return
	 *
	 */
	public int countDataByMonthAndLocalCode(@Param(value="yearMonth") String yearMonth, @Param(value="localCode") String localCode);
	
	
	/**
	 * 查询Community
	 * @author Jack
	 * @date 2018年3月1日 上午2:16:10
	 * @description 
	 * @param officeStr
	 * @return
	 *
	 */
	public List<ExpRoutinevacc6_1> selectCommunityList(@Param(value="officeStr") String officeStr);
}
